package models

import (
	"context"
	"time"
)

// ProductModel 商品模块表
type ProductModel struct {
	Id         string    `json:"id" xorm:"varchar(36) pk comment('标签ID(UUID)')"` // 使用UUID作为主键
	Name       string    `json:"name" xorm:"varchar(50) not null comment('标签名称')"`
	Text       string    `json:"text" xorm:"varchar(200) not null default '' comment('标签文案')"`
	Icon       string    `json:"icon" xorm:"varchar(255) not null default '' comment('标签图标')"`
	Sort       int       `json:"sort" xorm:"not null default 0 comment('排序值')"`
	Status     int       `json:"status" xorm:"tinyint(1) not null default 1 comment('状态:0禁用 1启用')"`
	Type       string    `json:"type" xorm:"varchar(20) not null default '' comment('标签类型')"`
	Color      string    `json:"color" xorm:"varchar(20) not null default '' comment('标签颜色')"`
	UpdateTime time.Time `json:"update_time" xorm:"not null updated comment('更新时间')"`
	CreateTime time.Time `json:"create_time" xorm:"not null created comment('创建时间')"`
}

// TableName 表名
func (ProductModel) TableName() string {
	return "product_tag"
}

func ProductModelFindByIDs(ctx context.Context, ids []string) (productModels []*ProductModel, err error) {
	err = getSession(ctx).In("id", ids).Find(&productModels)
	return
}

func ProductModelNameByIDs(ctx context.Context, ids []string) (modelNames []string, err error) {
	productModels := make([]*ProductModel, 0)
	err = getSession(ctx).In("id", ids).Find(&productModels)
	if err != nil {
		return
	}
	modelNames = make([]string, 0)
	for _, v := range productModels {
		modelNames = append(modelNames, v.Name)
	}
	return
}
